//搜索使用场景：1：key模型。判断在不在
//2：key—value模型，通过key找对应的value值

namespace zq {
template <class K,class V> 
class BSTree_Node {
public:
  // 构造函数
  BSTree_Node(const K &k,const V& v) 
  : _left(nullptr), _right(nullptr), _key(k),_value(v) {}


  K _key; // 结点的值
  V _value;
  BSTree_Node<K,V> *_left;
  BSTree_Node<K,V> *_right;
};

template <class K,class V>
class BSTree {
  typedef BSTree_Node<K,V> Node;

public:
  bool insert(const K &k,const V& v);
  Node* find(const K &k);
  void InOrder();
  void _InOrder(Node *root);
  bool erase(const K &k);

private:
  Node *_root = nullptr; // 根节点
};
} // namespace zq
